home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
prog_d
/
wptools1.zip
/
DEMO
/
MDI_PRJ
/
MAIN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-04-13
|
8KB
|
262 lines
unit Main;
interface
uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, WPStatus, PrinPr, Wpstat2, WPTbar, WPDefs;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
FileNewItem: TMenuItem;
FileOpenItem: TMenuItem;
FileCloseItem: TMenuItem;
Window1: TMenuItem;
Help1: TMenuItem;
N1: TMenuItem;
FileExitItem: TMenuItem;
WindowCascadeItem: TMenuItem;
WindowTileItem: TMenuItem;
WindowArrangeItem: TMenuItem;
HelpAboutItem: TMenuItem;
OpenDialog: TOpenDialog;
FileSaveItem: TMenuItem;
FileSaveAsItem: TMenuItem;
Edit1: TMenuItem;
CutItem: TMenuItem;
CopyItem: TMenuItem;
PasteItem: TMenuItem;
WindowMinimizeItem: TMenuItem;
WPToolBar1: TWPToolBar;
WPAltStatusBar1: TWPAltStatusBar;
Preview: TButton;
procedure FormCreate(Sender: TObject);
procedure FileNewItemClick(Sender: TObject);
procedure WindowCascadeItemClick(Sender: TObject);
procedure UpdateMenuItems(Sender: TObject);
procedure WindowTileItemClick(Sender: TObject);
procedure WindowArrangeItemClick(Sender: TObject);
procedure FileCloseItemClick(Sender: TObject);
procedure FileOpenItemClick(Sender: TObject);
procedure FileExitItemClick(Sender: TObject);
procedure FileSaveItemClick(Sender: TObject);
procedure FileSaveAsItemClick(Sender: TObject);
procedure CutItemClick(Sender: TObject);
procedure CopyItemClick(Sender: TObject);
procedure PasteItemClick(Sender: TObject);
procedure WindowMinimizeItemClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure WPToolBar1IconSelection(Sender: TObject; var Typ: TWpSelNr;
const str: string; const group, num, index: Integer);
procedure PreviewClick(Sender: TObject);
private
{ Private declarations }
procedure CreateMDIChild(const Name: string);
procedure ShowHint(Sender: TObject);
procedure EditStateEvent(Sender: TObject;
selection_marked, clipboard_not_empty: Boolean);
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
uses ChildWin;
procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.OnHint := ShowHint;
Screen.OnActiveFormChange := UpdateMenuItems;
WPToolBar1.AddControl(Preview);
end;
procedure TMainForm.ShowHint(Sender: TObject);
begin
WPAltStatusBar1.SetString(stStatus,Application.Hint); {NEW}
end;
procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;
begin
GlobalToolBar := WPToolBar1;
GlobalStatusBar := WPAltStatusBar1;
{ create a new MDI child window }
Child := TMDIChild.Create(Application);
Child.Caption := Name;
Child.Memo.EditStateEvent:=EditStateEvent; { NEW }
end;
procedure TMainForm.FileNewItemClick(Sender: TObject);
begin
CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
end;
procedure TMainForm.FileOpenItemClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin CreateMDIChild(OpenDialog.FileName);
(ActiveMDIChild as TMDIChild).Memo.Clear;
(ActiveMDIChild as TMDIChild).Memo.LoadFromFile(OpenDialog.FileName); {NEW}
end;
end;
procedure TMainForm.FileCloseItemClick(Sender: TObject);
begin
if ActiveMDIChild <> nil then
ActiveMDIChild.Close;
end;
procedure TMainForm.FileSaveItemClick(Sender: TObject);
begin
{ save current file (ActiveMDIChild points to the window) }
(ActiveMDIChild as TMDIChild).Memo.Save; {NEW}
end;
procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
begin
{ save current file under new name }
(ActiveMDIChild as TMDIChild).Memo.SaveAs; {NEW}
end;
procedure TMainForm.FileExitItemClick(Sender: TObject);
begin
Close;
end;
procedure TMainForm.CutItemClick(Sender: TObject);
begin
{cut selection to clipboard}
(ActiveMDIChild as TMDIChild).Memo.CutToClipboard; {NEW}
end;
procedure TMainForm.CopyItemClick(Sender: TObject);
begin
{copy selection to clipboard}
(ActiveMDIChild as TMDIChild).Memo.CopyToClipboard; {NEW}
end;
procedure TMainForm.PasteItemClick(Sender: TObject);
begin
{paste from clipboard}
(ActiveMDIChild as TMDIChild).Memo.PasteFromClipboard; {NEW}
end;
procedure EditStateEvent(Sender: TObject; { NEW }
selection_marked, clipboard_not_empty: Boolean);
begin
end;
procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
begin
Cascade;
end;
procedure TMainForm.WindowTileItemClick(Sender: TObject);
begin
Tile;
end;
procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
begin
ArrangeIcons;
end;
procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
var
I: Integer;
begin
{ Must be done backwards through the MDIChildren array }
for I := MDIChildCount - 1 downto 0 do
MDIChildren[I].WindowState := wsMinimized;
end;
procedure TMainForm.UpdateMenuItems(Sender: TObject);
begin
FileCloseItem.Enabled := MDIChildCount > 0;
FileSaveItem.Enabled := MDIChildCount > 0;
FileSaveAsItem.Enabled := MDIChildCount > 0;
CutItem.Enabled := MDIChildCount > 0;
CopyItem.Enabled := MDIChildCount > 0;
PasteItem.Enabled := MDIChildCount > 0;
WindowCascadeItem.Enabled := MDIChildCount > 0;
WindowTileItem.Enabled := MDIChildCount > 0;
WindowArrangeItem.Enabled := MDIChildCount > 0;
WindowMinimizeItem.Enabled := MDIChildCount > 0;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
Screen.OnActiveFormChange := nil;
end;
procedure TMainForm.WPToolBar1IconSelection(Sender: TObject; var Typ: TWpSelNr;
const str: string; const group, num, index: Integer);
begin
if Typ<>wptNone then
begin
if typ=wptIconSel then
begin
if group=WPI_GR_DISK then case num of
WPI_CO_OPEN : begin if OpenDialog.Execute then
begin CreateMDIChild(OpenDialog.FileName);
if ActiveMDIChild <> nil then
begin
(ActiveMDIChild as TMDIChild).Memo.Clear;
(ActiveMDIChild as TMDIChild).
Memo.LoadFromFile(OpenDialog.FileName);
end;
end;
if WPToolBar1<>nil then
WPToolBar1.DeselectIcon(0,WPI_GR_DISK,WPI_CO_OPEN);
Typ:=wptNone;
end;
WPI_CO_ClOSE : begin
if ActiveMDIChild <> nil then
begin
(ActiveMDIChild as TMDIChild).Memo.Save;
ActiveMDIChild.Close;
end;
if WPToolBar1<>nil then
WPToolBar1.DeselectIcon(0,WPI_GR_DISK,WPI_CO_CLOSE);
Typ:=wptNone;
end;
end; end;
end;
end;
procedure TMainForm.PreviewClick(Sender: TObject);
begin
if (ActiveMDIChild <> nil) and (ActiveMDIChild is TMDIChild) then
with (ActiveMDIChild as TMDIChild) do
try
WPRuler1.Visible := FALSE;
PrintPreview := TPrintPreview.Create(Self);
PrintPreview.WordProcessor := Memo;
PrintPreview.ShowModal;
finally
WPRuler1.Visible := TRUE;
PrintPreview.Free;
end;
end;
{ NEW }
procedure TMainForm.EditStateEvent(Sender: TObject;
selection_marked, clipboard_not_empty: Boolean);
begin
CutItem.Enabled := selection_marked;
CopyItem.Enabled := selection_marked;
PasteItem.Enabled := clipboard_not_empty;
end;
end.